package com.ruoyi.attendance.service;

import java.util.List;
import com.ruoyi.attendance.domain.SignRecord;


/**
 * 签到Service接口
 * 
 * @author Weiney
 * @date 2025-03-04
 */
public interface ISignRecordService 
{
    /**
     * 查询签到
     * 
     * @param signId 签到主键
     * @return 签到
     */
    public SignRecord selectSignRecordBySignId(Long signId);

    /**
     * 查询签到列表
     * 
     * @param signRecord 签到
     * @return 签到集合
     */
    public List<SignRecord> selectSignRecordList(SignRecord signRecord);

    /**
     * 新增签到
     * 
     * @param signRecord 签到
     * @return 结果
     */
    public int insertSignRecord(SignRecord signRecord);

    /**
     * 修改签到
     * 
     * @param signRecord 签到
     * @return 结果
     */
    public int updateSignRecord(SignRecord signRecord);

    /**
     * 批量删除签到
     * 
     * @param signIds 需要删除的签到主键集合
     * @return 结果
     */
    public int deleteSignRecordBySignIds(Long[] signIds);

    /**
     * 删除签到信息
     * 
     * @param signId 签到主键
     * @return 结果
     */
    public int deleteSignRecordBySignId(Long signId);

    /**
     * 根据课程记录 ID 和课程 ID 获取未签到的用户记录列表，并设置签到状态后批量插入
     * @param signRecords 未签到的用户记录列表
     */
    void processUnsignedRecords(List<SignRecord> signRecords);
}
